// 加载vue构造函数
import Vue from 'vue'
// 路由组件映射
import Router from 'vue-router'
// 加载login组件
import Login from '@/components/Login'
// 加载home组件
import Home from '@/components/Home'
// 加载Wellcome组件
import Welcome from '@/components/Welcome'
// 加载user组件
import Users from '@/components/user/Users'

// 全局注册路由组件
Vue.use(Router)
// 路由实例
const router = new Router({
  // 路由表
  routes: [
    { path: '/', redirect: '/login' },
    { path: '/login', component: Login },
    {
      path: '/home',
      component: Home,
      redirect: '/welcome',
      children: [
        { path: '/welcome', component: Welcome },
        { path: '/users', component: Users }
      ]
    }
  ]
})

// 挂载路由导航守卫
router.beforeEach((to, from, next) => {
  if (to.path === '/login') return next()
  const tokenStr = window.sessionStorage.getItem('token')
  if (!tokenStr) return next('/login')
  next()
})

// 对外暴露路由组件
export default router
